@南馆潇湘
2年前 提问
1个回答

黑客对Oracle攻击的手段有哪些

007bug
2年前

黑客对Oracle攻击的手段有以下这些:

  • SQL注入攻击:SQL注入攻击是一种很简单的攻击,在页面表单里输入信息,悄悄地加入一些特殊代码,诱使应用程序在数据库里执行这些代码,并返回一些程序员没有料到的结果。

  • 默认密码:Oracle数据库是一个庞大的系统,提供了能够创建一切的模式,绝大部分的系统自带用户登录都配备了预设的默认密码,攻击者会去网络查找这些默认密码进行尝试登录数据库系统,获取数据。

  • 蛮力攻击:蛮力攻击,就像其名字所暗示的,就是不停的撬,直到“锁”打开为止的方法。对于Oracle数据库来说,就是用某种自动执行的进程,通过尝试所有的字母数字组合来破解用户名和密码。

  • 从后门偷窃数据:Oracle有一个名为UTL_TCP的程序包,能够使外部连接指向其他服务器。对它稍微改编一下,就可以利用它从数据库发送一套低带宽数据流到远程主机。Oracle也附带了一些有用的程序包来隐藏数据流里的信息,如果你在发动潜入行动的时候担心入侵检测系统会监测到你的不法活动,那么可以充分利用这些功能秘密嵌入,包括DBMS_OBFUSCATION_TOOLKIT和DBMS_CRYPTO。

  • 监听攻击:Oracle监听器的设置是为了能够实现远程管理。那么如果攻击者把监听器的logfile设置为Unix.rhosts文件,这样攻击者就可以轻松的对.rhosts文件进行写操作。Unix上的这个文件设置了什么人可以不用密码而使用rsh、rlogin和rcp命令登录。你可以想想将会发生什么事情。

  • 权限提升:简单的说,“权限提升”包括使用现有的低权限帐户,利用巧取、偷窃或非法的方式获取更高的权限,甚至是数据库管理员的权限。

  • 操作系统指令和安全:黑客并不总是通过shell命令行提示符登录到你的系统的。不过,通过诱使Oracle数据库运行操作系统水平的指令,我们的确给黑客提供了一条运行指令的有效途径。这些指令能够删除和破坏文件、改写日志(以便隐藏他们的行踪)、创建帐户,以及其他一些能通过命令行输入指令达成的操作。

  • 文件系统安全:Oracle操作系统用户拥有所有Oracle软件和数据库数据文件的访问权限,所以如果数据库内部的某些用户利用UTL_FILE包访问filesystem上的文件时,他们就可以访问之前由于权限和角色限制而无权访问的很多数据库内部文件。

Oracle防止黑客攻击的措施有以下这些:

  • 用户管理机制:在Oracle系统中,根据工作性质和特点,用户可以分为3类:数据库管理员(DBA)、数据库开发人员和普通用户。不同类型的用户分别赋予不同的权限,从而保证数据库系统的安全。任何需要进入数据库的操作都需要在数据库中有一个合法的用户名,每个用户必须通过一个密码连接到数据库,以便被确认,只有经过系统核实的用户才可以访问数据库。用户配置文件主要用于控制用户使用主机系统资源,可以通过该文件进行账号管理。

  • 审计机制:在Oracle系统中,利用审计跟踪来监视用户对数据库施加的操作,通常用于调查非法活动以及监控、收集特定数据库的活动信息。审计功能启用一个专用的审计日志(audit log),系统自动将用户对数据库的所有操作记录在上面,包括操作用户、操作对象、操作时间、操作名称等。

  • 授权与检查机制:Oracle 的权限分为系统级权限和对象(或实体)级权限。系统级权限完成某种特定操作的权限或者对某一特定类型实体执行特定操作的权限,如删除配置文件、查询任意表。实体级权限:对特定的表、视图、序列生成器、过程等执行特定操作的权限。角色指可以授予用户或其他角色的一组相关权限的集合,通过角色可以简化权限管理,减少权限的授予工作;实现动态权限管理,即随着任务的变化可通过改变角色的权限,达到对用户权限的改变。

  • 视图机制:视图机制是利用一个虚表,反映一个或多个基表的数据。视图可以由基表中的某些行和列组成,也可以由几个表中满足一定条件的数据行组成。利用视图可以对无权用户屏蔽数据,用户只能使用视图定义中的数据,而不能使用视图定义外的其他数据。例如,只读视图只能读,不能改,可以有效保护基表中的数据。

  • 触发器机制:触发器是一个与表相关联的、被存储的PL/SQL程序。每当一个特定的数据操作语句在指定的表上发生时,就会引发触发器的执行。利用触发器可以定义特殊的更复杂的用户级安全措施,保护粒度可以细化到行和列。

  • 数据备份与恢复机制:Oracle 数据库的备份分为两种:物理备份和逻辑备份。前者是实际物理数据库文件从一处复制到另一处的备份,操作系统备份、使用恢复管理器的备份、冷备份和热备份都是物理备份;后者是利用SQL从数据库中提取数据,并将其存入二进制文件中,这些数据可以重新导入原来的数据库,或者以后导入其他数据库。